home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
QuickTime - The Beta Release
/
QuickTime - The Beta Release.iso
/
Programming Stuff
/
Interfaces
/
Oldstyle C Interfaces
/
TimeBases.h
< prev
next >
Wrap
Text File
|
1991-09-06
|
6KB
|
220 lines
/*
File: TimeBases.h
Copyright: © 1990 by Apple Computer, Inc., all rights reserved.
*/
#ifndef _Timebases_
#define _Timebases_
#if THINK_C == 1
#ifndef const
#define const
#endif const
#endif
#include "Components.h"
#ifndef kSmallestArray
#define kSmallestArray 1
#endif
#ifndef kFix1
#define kFix1 (0x00010000)
#endif
/* TimeBase equates */
typedef long TimeValue;
typedef long TimeScale; /* This is a way cool rational number:
* q = (bottom-24-bits)/(high-8-bits + 1)
* Think about it. All integers less than
* 2^24 are valid.
*/
#ifndef I64
#define I64
typedef struct
{
long hi;
long lo;
} Int64;
#endif I64
typedef Int64 CompTimeValue;
typedef enum
{
loopTimeBase = 1
} TimeBaseFlags;
typedef struct privateTimeRecord *TimeBase;
typedef struct privateCallBackRecord *QTCallBack;
typedef struct TimeRecord
{
CompTimeValue value; /* units */
TimeScale scale; /* units per second */
TimeBase base;
} TimeRecord;
/* CallBack equates */
typedef enum
{
triggerTimeFwd = 0x0001, /* when curTime exceeds triggerTime going forward */
triggerTimeBwd = 0x0002, /* when curTime exceeds triggerTime going backwards */
triggerTimeEither = 0x0003, /* when curTime exceeds triggerTime going either direction */
triggerRateLT = 0x0004, /* when rate changes to less than trigger value */
triggerRateGT = 0x0008, /* when rate changes to greater than trigger value */
triggerRateEqual = 0x0010, /* when rate changes to equal trigger value */
triggerRateLTE = triggerRateLT | triggerRateEqual,
triggerRateGTE = triggerRateGT | triggerRateEqual,
triggerRateNotEqual = triggerRateGT | triggerRateEqual | triggerRateLT,
triggerRateChange = 0
} QTCallBackFlags;
typedef enum
{
timeBaseBeforeStartTime = 1,
timeBaseAfterStopTime = 2
} TimeBaseStatus;
typedef enum
{
callBackAtTime = 1,
callBackAtRate = 2,
callBackAtTimeJump = 3,
callBackAtInterrupt = 0x8000
} QTCallBackType;
#if THINK_C == 1
typedef void (*QTCallBackProc)(QTCallBack cb, long CallBackParam);
#else
typedef pascal void (*QTCallBackProc)(QTCallBack cb, long CallBackParam);
#endif
typedef enum {
qtcbNeedsRateChanges = 1, /* wants to know about rate changes */
qtcbNeedsTimeChanges = 2 /* wants to know about time changes */
};
typedef struct QTCallBackHeader {
long callBackFlags;
long reserved1;
char qtPrivate[40];
} QTCallBackHeader;
/****************************************
* *
* T I M E B A S E *
* *
****************************************/
pascal TimeBase NewTimeBase(void)
= {0x303c,0xa5,0xaaaa};
pascal void DisposeTimeBase(TimeBase tb)
= {0x303c,0xb6,0xaaaa};
pascal TimeValue GetTimeBaseTime(TimeBase tb,TimeScale s, TimeRecord *out)
= {0x303c,0xa6,0xaaaa};
pascal void SetTimeBaseTime(TimeBase tb,const TimeRecord *in)
= {0x303c,0xa7,0xaaaa};
pascal void SetTimeBaseValue(TimeBase tb,TimeValue t,TimeScale s)
= {0x303c,0xa8,0xaaaa};
pascal Fixed GetTimeBaseRate(TimeBase tb)
= {0x303c,0xa9,0xaaaa};
pascal void SetTimeBaseRate(TimeBase tb, Fixed r)
= {0x303c,0xaa,0xaaaa};
pascal TimeValue GetTimeBaseStartTime(TimeBase tb,TimeScale s,TimeRecord *out)
= {0x303c,0xab,0xaaaa};
pascal void SetTimeBaseStartTime(TimeBase tb,const TimeRecord *in)
= {0x303c,0xac,0xaaaa};
pascal TimeValue GetTimeBaseStopTime(TimeBase tb,TimeScale s,TimeRecord *out)
= {0x303c,0xad,0xaaaa};
pascal void SetTimeBaseStopTime(TimeBase tb,const TimeRecord *in)
= {0x303c,0xae,0xaaaa};
pascal long GetTimeBaseFlags(TimeBase tb)
= {0x303c,0xb1,0xaaaa};
pascal void SetTimeBaseFlags(TimeBase tb,long f)
= {0x303c,0xb2,0xaaaa};
pascal void SetTimeBaseMasterTimeBase(TimeBase slave,TimeBase master,
const TimeRecord *slaveZero)
= {0x303c,0xb4,0xaaaa};
pascal TimeBase GetTimeBaseMasterTimeBase(TimeBase tb)
= {0x303c,0xaf,0xaaaa};
pascal void SetTimeBaseMasterClock(TimeBase slave,Component clockMeister,
const TimeRecord *slaveZero)
= {0x303c,0xb3,0xaaaa};
pascal ComponentInstance GetTimeBaseMasterClock(TimeBase tb)
= {0x303c,0xb0,0xaaaa};
pascal void ConvertTime(TimeRecord *inout,TimeBase newBase)
= {0x303c,0xb5,0xaaaa};
pascal void ConvertTimeScale(TimeRecord *inout,TimeScale newScale)
= {0x303c,0xb7,0xaaaa};
pascal void AddTime(TimeRecord *dst,const TimeRecord *src)
= {0x303c,0x10c,0xaaaa};
pascal void SubtractTime(TimeRecord *dst,const TimeRecord *src)
= {0x303c,0x10d,0xaaaa};
pascal long GetTimeBaseStatus(TimeBase tb,TimeRecord *unpinnedTime)
= {0x303c,0x10b,0xaaaa};
pascal void SetTimeBaseZero(TimeBase tb, TimeRecord *zero)
= {0x303c,0x128,0xaaaa};
/****************************************
* *
* C A L L B A C K *
* *
****************************************/
pascal QTCallBack NewCallBack(TimeBase tb, short qtType)
= {0x303c,0xeb,0xaaaa};
pascal void DisposeCallBack(QTCallBack qtCall)
= {0x303c,0xec,0xaaaa};
pascal short GetCallBackType(QTCallBack qtCall)
= {0x303c,0xed,0xaaaa};
pascal TimeBase GetCallBackTimeBase(QTCallBack qtCall)
= {0x303c,0xee,0xaaaa};
pascal OSErr CallMeWhen(QTCallBack qtCall, QTCallBackProc callBackProc, long refCon,
long param1, long param2, long param3)
= {0x303c,0xb8,0xaaaa};
pascal void CancelCallBack(QTCallBack cb)
= {0x303c,0xb9,0xaaaa};
/****************************************
* *
* C L O C K C A L L B A C K *
* S U P P O R T *
* *
****************************************/
pascal OSErr AddCallBackToTimeBase(QTCallBack cb)
= {0x303c,0x129,0xaaaa};
pascal OSErr RemoveCallBackFromTimeBase(QTCallBack cb)
= {0x303c,0x12a,0xaaaa};
pascal QTCallBack GetFirstCallBack(TimeBase tb)
= {0x303c,0x12b,0xaaaa};
pascal QTCallBack GetNextCallBack(QTCallBack cb)
= {0x303c,0x12c,0xaaaa};
pascal void ExecuteCallBack(QTCallBack cb)
= {0x303c,0x12d,0xaaaa};
#endif _Timebases_